<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta name="viewport"
        content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0" />
    <meta name="format-detection" content="telephone=no,email=no,date=no,address=no">
    <link rel="stylesheet" type="text/css" href="../css/aui.2.0.css" />
    <style>
        table {
            border: 1px solid #e0e0e0;
            border-collapse: collapse;
        }

        td {
            border: 1px solid #e0e0e0;
        }
    </style>
</head>

<body>
    <header class="aui-bar aui-bar-nav main-header">
        <a class="aui-pull-left aui-btn" tapmode onclick="closeWin();">
            <span class="aui-iconfont aui-icon-left"></span>
        </a>
        <div class="aui-title" id="title">
            容器报废库间转移
        </div>
    </header>
    <div class="aui-bar aui-bar-nav sub-header"></div>
    <div class="aui-content aui-margin-b-15" style="margin-top:50px;padding-bottom: 50px;">
        <div class="white_background">
            <ul class="aui-list aui-form-list">
                <li class="aui-list-item">
                    <div class="aui-list-item-inner">
                        <div class="aui-list-item-label">容器</div>
                        <div class="aui-list-item-input">
                            <input type="text" placeholder="请扫描容器" id="traynum" value="" onclick="getIdSelector();">
                        </div>
                    </div>
                </li>
                <li class="aui-list-item">
                    <div class="aui-list-item-inner">
                        <div class="aui-list-item-label">容器容量</div>
                        <div class="aui-list-item-input">
                            <input type="number" id="qty">
                        </div>
                    </div>
                </li>

                <li class="aui-list-item">
                    <div class="aui-list-item-inner">
                        <div class="aui-list-item-label">缺陷类别</div>
                        <div class="aui-list-item-input">
                            <select id="qualchkitemType">
                            </select>
                        </div>
                    </div>
                </li>
                <li class="aui-list-item">
                    <div class="aui-list-item-inner">
                        <div class="aui-list-item-label">缺陷内容</div>
                        <div class="aui-list-item-input" onclick="goSelectqualchkitem()">
                            <input type="text" disabled="true" placeholder="选择缺陷内容" id="qualchkitem" value="" />
                        </div>
                    </div>
                </li>

                <li class="aui-list-item">
                    <div class="aui-list-item-inner">
                        <div class="aui-list-item-label">调出库位</div>
                        <div class="aui-list-item-input">
                            <input type="text" placeholder="选择/扫描 调出库位" id="workCellCode" value=""
                                onclick="getIdSelector();" />
                        </div>
                        <i class="aui-input-addon aui-iconfont aui-icon-right" onclick="goSelectWorkCell('1')"></i>
                    </div>
                </li>
                <li class="aui-list-item">
                    <div class="aui-list-item-inner">
                        <div class="aui-list-item-label">调入库位</div>
                        <div class="aui-list-item-input">
                            <input type="text" placeholder="选择/扫描 调入库位" id="relWorkCellCode" value=""
                                onclick="getIdSelector();" />
                        </div>
                        <i class="aui-input-addon aui-iconfont aui-icon-right" onclick="goSelectWorkCell('2')"></i>
                    </div>
                </li>

            </ul>
        </div>
        <div class="aui-btn aui-btn-info aui-btn-block" onclick="save()" id="submitButton">保存</div>
        <div class="white_background">
            <div style="background-color:white;width: 100%;margin-top:2%;margin-bottom:5px;">
                <table class="table" style='width:100%;' id="table">
                    <thead>
                        <tr style="text-align: center;color: #757575;font-size: 8px;font-weight: bold;">
                            <td algin='center'>序号</td>
                            <td algin='center'>物料编码</td>
                            <td algin='center'>物料名称</td>
                            <td algin='center'>批次号</td>
                            <td algin='center'>数量</td>
                        </tr>
                    </thead>
                    <tbody id="tbodyHtml">
                    </tbody>
                </table>
            </div>
        </div>
    </div>
    <footer class="aui-bar aui-bar-tab" id="footer">
        <div class="aui-bar-tab-item" tapmode id="scan" onclick="doScan()">
            <i class="aui-iconfont aui-icon-scan aui-text-epblue" style="font-size: 1.8rem"></i>
        </div>
    </footer>
</body>
<script type="text/javascript" src="../script/api.js"></script>
<script type="text/javascript" src="../script/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="../script/public.js"></script>
<script type="text/javascript" src="../script/clickThrottle.js"></script>
<script type="text/javascript">
    //光标所在id
    var idSelector = "";
    var workCellGid = ""; //调出库位GID
    var workCellCode = ""; //调出库位编码
    var workCellName = ""; //调出库位名称
    var relWorkCellGid = ""; //调入库位GID
    var relWorkCellCode = ""; //调入库位编码
    var relWorkCellName = ""; //调入库位名称

    var relWorkCenterGid = ""; //调入仓库GID
    var mrlCode = ""; //物料编码
    var mrlName = ""; //物料名称
    var qualchkitemGid = "";

    var scanRule = ""; //条码解析规则
    var subBussinessType = "";//库间转移子业务类型
    var isBlack = ""; //黑名单标识
    //初始化查询仓库下拉框
    apiready = function () {

        $("#traynum").focus();
        idSelector = "traynum";

        var query = api.pageParam.query;
        subBussinessType = query.subBussinessType;
        isBlack = query.isBlack;
        relWorkCenterGid = query.relWorkCenterGid;
        //查询缺陷下拉框
        doSearchUqcqualchkitem();

    }

    // 获取光标所在组件的id
    function getIdSelector() {
        var e = event || window.event;
        var el = e.srcElement || e.target;
        idSelector = el.id;
        $("#" + el.id).select();
    }



    //扫描
    function doScan() {
        var moduleScanner = api.require('moduleScanner');
        var params = {
            top: 150, //扫描窗口的上边距
            width: 250, //扫描窗口的宽
            height: 250, //扫描窗口的高
            useColor: false, //是否使用自己设定的颜色(startColor和endColor),
            //如果不使用设定的颜色就使用默认的那张网格图
            startColor: '#0F08C8FF', //渐变起始颜色
            endColor: '#7F08C8FF', //渐变结束颜色
            animTime: 2200, //扫描动画时间,单位为毫秒
        };
        moduleScanner.toScannerActivityForResult(params, function (ret, err) {

            //1：调出库位
            if (idSelector == 'workCellCode') {

                $("#workCellCode").val(ret);
                //查询调出库位
                getWorkCell(ret, idSelector, "1");

                //24：调入库位
            } else if (idSelector == 'relWorkCellCode') {

                $("#relWorkCellCode").val(ret);
                //查询调入库位
                getWorkCell(ret, idSelector, "2");

                //5：扫描容器号
            } else if (idSelector == 'traynum') {
                //查询容器下的箱信息显示
                $("#traynum").val(ret);
                getBoxInfoByTray(ret, 1);
            }
        });
    }

    //7:库位扫描校验
    function getWorkCell(code, inputId, flag) {
        var un = localStorage.getItem("un");
        var serverUrl = localStorage.getItem('serverUrl');
        var url = serverUrl + "/app/getWorkCell";
        var data = {
            values: {
                flag: "out_kj", //库内库间标识（out_kn库内  out_kj库间,in_rk入库出库）
                workCenterGid: "", //仓库GID
                workCellCode: code, //库位编码
                relWorkCellGid: "", //调入库位
                tm: "",
                workCellFlag: "", //原库位调入库位flag
                un: un
            }
        };
        api.ajax({
            url: url,
            method: 'post',
            dataType: 'json',
            timeout: 300,
            returnAll: false,
            data: data
        }, function (ret, err) {
            if (ret) {
                var data = JSON.stringify(ret);
                var myobj = eval("(" + data + ")");
                //成功
                if (myobj.code == '0') {
                    var list = eval(myobj.list);

                    //源库位
                    if (flag == "1") {

                        workCellGid = list[0].workCellGid;
                        workCellCode = list[0].workCellCode + ":" + list[0].workCellName;
                        workCellName = list[0].workCellName;
                        document.getElementById(inputId).value = workCellCode;
                        $("#boxnum").focus();
                        idSelector = "boxnum";

                        //调入库位
                    } else if (flag == "2") {

                        relWorkCellGid = list[0].workCellGid;
                        relWorkCellCode = list[0].workCellCode + ":" + list[0].workCellName;
                        relWorkCellName = list[0].workCellName;
                        document.getElementById(inputId).value = relWorkCellCode;
                        $("#workCellCode").focus();
                        idSelector = "workCellCode";
                    }
                } else {
                    api.toast({
                        msg: myobj.message,
                        duration: 3000
                    });
                    $("#" + inputId).focus();
                    $("#" + inputId).select();
                }
            }
        });
    }

    //8：选择库位
    function goSelectWorkCell(workCellFlag) {
        var tm = $("#tm").val();
        api.openWin({
            name: 'uwmSelectWorkCell',
            url: 'uwmSelectWorkCell.html',
            pageParam: {
                flag: "out_kj",
                name: "uwmInterBankTransferByTrayVessel_BF",
                tm: tm,
                workCenterGid: relWorkCenterGid,
                relWorkCellGid: relWorkCellGid,
                workCellFlag: workCellFlag
            }
        });
    }

    //库位选择后回调函数
    function setWorkCell(id, code, name, workCellFlag) {

        //源库位
        if (workCellFlag == "1") {

            workCellGid = id;
            workCellCode = code;
            workCellName = name;
            document.getElementById('workCellCode').value = code + ":" + name;

            //调入库位
        } else if (workCellFlag == "2") {

            relWorkCellGid = id;
            relWorkCellCode = code;
            relWorkCellName = name;
            document.getElementById('relWorkCellCode').value = code + ":" + name;
            $("#workCellCode").focus();
            var e = "workCellCode";
            idSelector = e;
        }
    }

    //9；PDA自带扫描回车事件-源库位
    $("#workCellCode").on('keypress', function (e) { //#keyword为input文本框
        var keycode = e.keyCode;
        var sm = $(this).val();
        if (keycode == '13') {

            $("#workCellCode").val(sm);
            getWorkCell(sm, "workCellCode", "1");
        }
    });

    //10；PDA自带扫描回车事件-调入库位
    $("#relWorkCellCode").on('keypress', function (e) { //#keyword为input文本框
        var keycode = e.keyCode;
        var sm = $(this).val();
        if (keycode == '13') {

            $("#relWorkCellCode").val(sm);
            getWorkCell(sm, "relWorkCellCode", "2");
        }
    });

    //查询容器下的箱信息展示 flag=1 为初始扫描容器号获取箱信息，不显示库转结果、库转信息列，
    //flag=2 为库转保存后返回显示，需要显示库转结果、库转信息列
    function getBoxInfoByTray(traynum, flag) {
        var un = localStorage.getItem('un');
        var serverUrl = localStorage.getItem('serverUrl');
        var url = serverUrl + "/app/getBoxInfoByTrayVessel";
        var params = new Object();
        params.url = url;
        params.dataType = 'json';
        params.method = 'post';
        var data = {
            values: {
                traynum: traynum,
                un: un
            }
        };
        api.ajax({
            url: url,
            method: 'post',
            dataType: 'json',
            timeout: 300,
            returnAll: false,
            data: data
        }, function (ret, err) {
            if (ret) {
                var data = JSON.stringify(ret);
                var myobj = eval("(" + data + ")");
                //成功
                if (myobj.code == '0') {
                    var list = myobj.list;
                    if (myobj.workCellCode != '') {
                        workCellCode = myobj.workCellCode + ":" + myobj.workCellName;
                        $("#workCellCode").val(workCellCode);
                    }

                    var html = "";
                    var qty = 0;
                    //遍历
                    console.log("flag:" + flag);
                    var x = 0;
                    for (var i = 1; i < list.length; i++) {
                        if (list[0].mrlCode != list[i].mrlCode) {
                            api.toast({
                                msg: '此容器装有不同物料,容器只装有一种物料时才允许容器报废库转',
                                duration: 3000
                            });
                            return;
                        }
                    }
                    for (var i = 0; i < list.length; i++) {
                        qty = qty + Number(list[i].qty);
                        x = i + 1;
                        html += "<tr style='text-align: center;color: black;font-size: 8px;'>";
                        html += "<td name='no'>" + x + "</td>";
                        html += "<td name='mrlCode'>" + list[i].mrlCode + "</td>";
                        html += "<td name='mrlCode'>" + list[i].mrlName + "</td>";
                        html += "<td name='ext05'>" + list[i].ext05 + "</td>";
                        html += "<td name='qty'>" + list[i].qty + "</td>";

                        html += "</tr>";
                    }
                    mrlCode = list[0].mrlCode;
                    mrlName = list[0].mrlName;
                    $("#qty").val(qty);

                    $api.html($api.byId("tbodyHtml"), html);
                    $("#traynum").focus();
                    $("#traynum").select();

                } else if (myobj.code == '1') {
                    api.toast({
                        msg: myobj.message,
                        duration: 3000
                    });
                    $api.html($api.byId("tbodyHtml"), "");
                    $("#traynum").focus();
                    $("#traynum").select();
                }
            }
        })




    }
    var isActive = false
    //保存按钮
    function save() {

        if (!clickThrottle()) {
            return;
        }

        if (isActive) {
            api.toast({
                msg: '正在提交，请不要重复操作',
                duration: 3000
            });
            return;
        }
        //转移数量数量
        var qty = $("#qty").val();
        //容器号
        var traynum = $("#traynum").val();

        //缺陷类别
        var qualchkitemType = $("#qualchkitemType").val();
        //缺陷内容
        var qualchkitem = $("#qualchkitem").val();
        const submitButton = document.getElementById('submitButton');

        submitButton.style.pointerEvents = "none"
        //缺陷内容非空校验
        if (qualchkitem == "" || qualchkitem == null || qualchkitem == undefined) {
            api.toast({
                msg: '缺陷内容缺陷内容不能为空',
                duration: 3000
            });
            submitButton.style.pointerEvents = "auto"
            return;
        }

        ////缺陷类别非空校验
        if (qualchkitemType == "" || qualchkitemType == null || qualchkitemType == undefined) {
            api.toast({
                msg: '缺陷内容缺陷内容不能为空',
                duration: 3000
            });
            submitButton.style.pointerEvents = "auto"
            return;
        }

        //调入库位非空校验
        if (relWorkCellGid == "" || relWorkCellGid == null || relWorkCellGid == undefined) {
            api.toast({
                msg: '请选择/扫描 调入库位',
                duration: 3000
            });
            submitButton.style.pointerEvents = "auto"
            return;
        }

        //箱码非空校验
        if (traynum == "" || traynum == null || traynum == undefined) {
            api.toast({
                msg: '容器号不能为空',
                duration: 3000
            });
            submitButton.style.pointerEvents = "auto"
            return;
        }

        //源仓库和目标仓库不能一样
        if (workCellGid != null && workCellGid != "" && workCellGid == relWorkCellGid) {
            api.toast({
                msg: '源库位和调入库位不能一样',
                duration: 3000
            });
            submitButton.style.pointerEvents = "auto"
            return;
        }

        alert("确定执行报废库转操作?");
        api.showProgress({
            title: '保存中...',
        });
        isActive = true;
        var un = localStorage.getItem('un');
        var serverUrl = localStorage.getItem('serverUrl');
        var url = serverUrl + "/app/uwmInterBankTransferByTraySaveVessel_BF";
        var data = {
            values: { ////以表单方式提交参数（JSON对象）
                relWorkCellGid: relWorkCellGid, // 调入库位
                workCellGid: workCellGid, //源库位编码
                traynum: traynum, //容器号
                subBussinessType: subBussinessType,
                isBlack: isBlack,//黑名单库间转移标识
                qualchkitem: qualchkitemGid,//缺陷内容
                qty: qty,//转移数量
                mrlCode: mrlCode,//转移数量
                mrlName: mrlName,//转移数量
                un: un
            }
        };
        api.ajax({
            url: url,
            method: 'post',
            dataType: 'json',
            timeout: 300,
            returnAll: false,
            data: data
        }, function (ret, err) {
            isActive = false;
            if (ret) {
                var data = JSON.stringify(ret);
                var myobj = eval("(" + data + ")");
                //成功
                if (myobj.code == '0') {
                    submitButton.style.pointerEvents = "auto"
                    api.hideProgress();
                    api.toast({
                        msg: "保存成功",
                        duration: 3000
                    }); //清空表单

                    getBoxInfoByTray(traynum, 2);

                    $("#traynum").focus();
                    $("#traynum").select();
                } else if (myobj.code == '1') {
                    submitButton.style.pointerEvents = "auto"
                    api.hideProgress();
                    getBoxInfoByTray(traynum, 3);//都库转失败、或部分库转失败
                    api.toast({
                        msg: myobj.message,
                        duration: 3000
                    });
                    $("#traynum").focus();
                    $("#traynum").select();
                }
            } else {
                submitButton.style.pointerEvents = "auto"
                api.hideProgress();
            }
        });
    }



    //自动保存
    function saveAuto() {

        //物料号
        var mrlCode = $("#mrlCode").val();
        //批次号
        var lotCode = $("#lotCode").val();
        //转移数量数量
        var qty = $("#qty").val();
        //条码
        var tm = $("#tm").val();
        //箱号
        var boxnum = $("#boxnum").val();

        //调入库位非空校验
        if (relWorkCellGid == "" || relWorkCellGid == null || relWorkCellGid == undefined) {
            return;
        }

        //箱码非空校验
        if (boxnum == "" || boxnum == null || boxnum == undefined) {
            return;
        }

        //物料非空校验
        if (mrlCode == "" || mrlCode == null || mrlCode == undefined) {
            return;
        }

        //批次号非空校验
        if (lotCode == "" || lotCode == null || lotCode == undefined) {
            return;
        }

        //源仓库和目标仓库不能一样
        if (workCellGid != null && workCellGid == relWorkCellGid) {
            return;
        }

        //保存
        save();
    }

    //扫描之后条码解析
    function tmSplit(sm) {
        $("#tm").val(sm);
        //直接解析
        if (scanRule == "old") {

            //本地解析
            localAnalyze(sm);

        } else {

            //后台解析
            postAnalyze(sm);
        }
    }

    //本地解析
    function localAnalyze(sm) {
        var arr = sm.split(",");
        if (arr[1] == null || arr[1] == undefined) {
            $("#mrlCode").val("");
        } else {
            $("#mrlCode").val(arr[1]);
        }
        if (arr[2] == null || arr[2] == undefined) {
            $("#qty").val("");
        } else {
            $("#qty").val(arr[2]);
        }
        if (arr[3] == null || arr[3] == undefined) {
            $("#lotCode").val("");
        } else {
            $("#lotCode").val(arr[3]);
        }
        if (arr[4] == null || arr[4] == undefined) {
            $("#tmID").val("");
        } else {
            $("#tmID").val(arr[4]);
        }
        if (arr[9] == null || arr[9] == undefined) {
            $("#boxnum").val("");
        } else {
            $("#boxnum").val(arr[9]);
        }

        //自动保存
        saveAuto();
    }

    //后台解析条码
    function postAnalyze(sm) {
        var un = localStorage.getItem('un');
        var serverUrl = localStorage.getItem('serverUrl');
        var url = serverUrl + "/app/analysisBarCodeCommon";
        var data = {
            values: {
                tm: sm, //条码
                un: un
            }
        };
        api.ajax({
            url: url,
            method: 'post',
            dataType: 'json',
            timeout: 300,
            returnAll: false,
            data: data
        }, function (ret, err) {
            if (ret) {
                var data = JSON.stringify(ret);
                var myobj = eval("(" + data + ")");
                //成功
                if (myobj.code == '0') {

                    var map = myobj.data;
                    for (var key in map) {
                        $("#" + key).val(map[key]);
                    }
                    //自动保存
                    saveAuto();
                } else if (myobj.code == '1') {

                    $("#boxnum").val("");
                    $("#boxnum").select();
                    api.toast({
                        msg: myobj.message,
                        duration: 3000
                    });
                }
            } else {
                alert(JSON.stringify(err));
            }
        });
    }


    //容器号监听回车事件
    $("#traynum").on('keypress', function (e) { //#keyword为input文本框
        var keycode = e.keyCode;
        var traynum = $(this).val();
        if (keycode == '13') {
            getBoxInfoByTray(traynum, 1);
        }
    });

    function doSearchUqcqualchkitem() {
        var serverUrl = localStorage.getItem('serverUrl');
        var un = localStorage.getItem('un');
        var url = serverUrl + "/app/getUtilComboxList";
        var data = {
            values: { ////以表单方式提交参数（JSON对象）
                tablename: "qc_bd_chk_item_type",
                column_name: "name",
                column_value: "code",
                condition: " is_delete=0 and ext01 = 'LLJC'",
                un: un
            }
        };
        api.ajax({
            url: url,
            method: 'post',
            dataType: 'json',
            timeout: 300,
            returnAll: false,
            async: false,
            data: data
        }, function (ret, err) {
            if (ret) {
                var data = JSON.stringify(ret);
                var map = eval("(" + data + ")");
                var list = eval(map.list);
                var html = "";
                for (var i = 0; i < list.length; i++) {
                    html += "<option value='" + list[i].value + "'>" + list[i].label + "</option>";
                }
                $api.html($api.byId("qualchkitemType"), html);
            }

        });
    }
    function goSelectqualchkitem() {
        var type = $("#qualchkitemType").val();
        if (type) {
            api.openWin({
                name: 'usmSelectQualchkitem',
                url: 'usmSelectQualchkitem.html',
                pageParam: {
                    code: type,
                    name: "uwmInterBankTransferByTrayVessel_BF",
                }
            });
        } else {
            api.toast({
                msg: "请先选择缺陷类别！",
                duration: 3000
            });
        }
    }

    //选择后回调函数
    function setQualchkitem(id, code, name) {
        qualchkitemGid = id;
        // qualchkitemCode = code;
        // qualchkitemName = name;
        document.getElementById('qualchkitem').value = name;
    }

    //返回按钮
    function closeWin() {
        api.closeWin({});
    }
</script>

</html>